﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using XGameFrame;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

using XGameFrame.Graphic;
using XGameFrame.Controls;


namespace XTowerDef.GameScreens
{
    public abstract partial class BaseGameState : GameState
    {
        #region Fields region

        protected XTowerDef GameRef;
        protected ControlManager ControlManager;
        protected AnimatedSpriteManager AnimatedSpriteManager;
        protected StaticSpriteManager StaticSpriteManager;
        protected MapManager MapManager;
        protected PlayerIndex playerIndexInControl;
        protected Boolean OrginalMouse;

        #endregion

        #region Properties region

        #endregion

        #region Constructor region

        public BaseGameState(Game game, GameStateManager manager)
            : base(game, manager)
        {
            GameRef = (XTowerDef)game;
            playerIndexInControl = PlayerIndex.One;
        }
        #endregion

        #region XNA Method Region

        protected override void LoadContent()
        {
            ContentManager Content = Game.Content;

            SpriteFont menuFont = Content.Load<SpriteFont>(@"Fonts\ControlFont");
            ControlManager = new ControlManager(menuFont);
            AnimatedSpriteManager = new AnimatedSpriteManager(menuFont);
            StaticSpriteManager = new StaticSpriteManager();
            MapManager = new MapManager(menuFont);
            base.LoadContent();
        }
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
        }
        public override void Draw(GameTime gameTime)
        {
            base.Draw(gameTime);
        }

        #endregion

    }
}
